#include <iostream>
#include <vector>
#include <algorithm>
#include <unordered_map>

using namespace std;

// 查找页面在后续页面引用序列中的再次出现位置
int findNextIndex(int page, int curIndex, const vector<int>& pages) {
    for (int i = curIndex + 1; i < pages.size(); ++i) {
        if (pages[i] == page)
            return i;
    }
    return pages.size() + 1; //在未来并未出现，给予大数
}

void OPTPageReplacement(int frameCount, vector<int>& pages)
{
    vector<int> frames;
    int faultCount = 0;

    for (int i = 0; i < pages.size(); i++)
    {
        int page = pages[i];
        bool faultPage = true;
        faultPage = !(find(frames.begin(), frames.end(), page) != frames.end());
        if (faultPage) {
            faultCount++;

            // 如果内存未满，直接将页面放入内存
            if (frames.size() < frameCount) {
                frames.push_back(page);
            }
            else {
                // 找到将来最长时间不会被访问的页面进行替换
                int Index = 0;
                int distance = -1;

                // 遍历当前内存中的页面
                for (int j = 0; j < frames.size(); ++j) {
                    // 在后续页面引用序列中查找当前内存页面再次出现的位置
                    int curDis = findNextIndex(frames[j], i, pages);

                    // 更新最远页面索引和距离
                    if (curDis > distance) {
                        distance = curDis;
                        Index = j;
                    }
                }
                frames[Index] = page;
            }

        }

        // 输出当前引用页面、内存状态及是否发生缺页中断
        cout << page << " [";
        for (int j = 0; j < frames.size(); ++j) {
            if (j > 0) cout << ", ";
            cout << frames[j];
        }
        cout << "] ";
        cout << (faultPage ? "是" : "否") << endl;
    }
    printf("缺页率: %.2lf%%\n", (double)100.00 * faultCount / pages.size());
}

int main()
{
    vector<int>pages;
    int frameCount, pageCount;
    cin >> frameCount >> pageCount;
    for (int i = 0; i < pageCount; i++)
    {
        int page; cin >> page;
        pages.push_back(page);
    }
    OPTPageReplacement(frameCount, pages);
    return 0;
}